package easy;

/**
 * @Description :编写一个函数来查找字符串数组中的最长公共前缀。 *
 *              如果不存在公共前缀，返回空字符串 ""。
 * @Author : machong
 * @Date : 2022/6/6 1:23
 * @Version : 1.0
 **/
public class leetCode14_longestCommonPrefix {
    /**
     * 横向扫描
     */
    public String longestCommonPrefix(String[] strs) {
        String prefix = "";
        if (strs.length >= 2){
            for (int i = 0; i < strs.length-1; i++) {
                if (i == 0){
                    prefix = strs[0];
                }
                prefix = longestCommonPrefix(prefix, strs[i+1]);
                if (prefix.length() == 0){
                    return "";
                }
            }
        }else {
            if (strs.length == 0) {
                return "";
            }
            return strs[strs.length-1];
        }
        return prefix;
    }

    public static String longestCommonPrefix(String str1,String str2){
        int length = Math.min(str1.length(),str2.length());
        String result = "";
        if (length == 0){
            return "";
        }
        for (int i = 0; i < length; i++) {
            if (str1.charAt(i) == str2.charAt(i)){
                result = result.concat(Character.toString(str1.charAt(i)));
            }else {
                return result;
            }
        }
        return result;
    }
/**
 * 纵向扫描
 */
//    public String longestCommonPrefix(String[] strs) {
//        if (strs == null || strs.length == 0) {
//            return "";
//        }
//        int length = strs[0].length();
//        int count = strs.length;
//        for (int i = 0; i < length; i++) {
//            char c = strs[0].charAt(i);
//            for (int j = 1; j < count; j++) {
//                if (i == strs[j].length() || strs[j].charAt(i) != c) {
//                    return strs[0].substring(0, i);
//                }
//            }
//        }
//        return strs[0];
//    }
}
